package ucla.axelia.vista;

import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import ucla.axelia.controlador.interfaces.IServicioAdministracionActividadPlanificada;
import ucla.axelia.modelo.data.ActividadPlanificada;
import ucla.axelia.modelo.data.HorarioActividadPlanificada;
import ucla.axelia.vista.componentes.ComponenteHorario;
import ucla.axelia.vista.componentes.beans.CeldaComponenteHorario;
import nextapp.echo2.app.ContentPane;

import com.obelisco.vista.componentes.ComponenteDatosListener;
import com.obelisco.vista.componentes.TipoFuncion;

public class PanePlanificarActividadHorario extends ContentPane implements ComponenteDatosListener{

	private ActividadPlanificada actividadPlanificada;
	private IServicioAdministracionActividadPlanificada servicioAdministracionActividadPlanificada;

	private ComponenteHorario horarioActividadPlanificada;
	
	
	public PanePlanificarActividadHorario() {
		   super();
	}	
	
	public void onCancelar() {
		// TODO Auto-generated method stub
		
	}

	public void onConfirmarCambios(Object arg0, TipoFuncion arg1, String arg2) {
		// GUARDAR HORARIOS
		Set horarios = new HashSet();
		List<CeldaComponenteHorario> horariosDisponibilidad = this.horarioActividadPlanificada.getHorario();
		for (Iterator iter1=horariosDisponibilidad.iterator(); iter1.hasNext(); ) {
			CeldaComponenteHorario celdaComponenteHorario = (CeldaComponenteHorario)iter1.next();
			HorarioActividadPlanificada horarioActividadPlanificada= new HorarioActividadPlanificada();
			horarioActividadPlanificada.setDiasemana(celdaComponenteHorario.getDiasemana());
			horarioActividadPlanificada.setTurno(celdaComponenteHorario.getTurno());
			horarioActividadPlanificada.setActividadPlanificada(actividadPlanificada);
			horarios.add(horarioActividadPlanificada);
		}
		this.actividadPlanificada.setHorarioActividadPlanificadas(horarios);
		this.servicioAdministracionActividadPlanificada.guardarActividadPlanificada(actividadPlanificada);
	}

	public void onConfirmarEliminacion(Object arg0) {
		// TODO Auto-generated method stub
		
	}
	
	public void onConsultar(Object arg0) {
		// TODO Auto-generated method stub
		this.onModificar(arg0);
		this.setEnabled(false);
	}

	public void onCrear() {
		// TODO Auto-generated method stub
		
	}

	public void onFuncionPersonalizada(Object arg0, TipoFuncion arg1, String arg2) {
		// TODO Auto-generated method stub
		
	}

	public void onIncluir(Object arg0) {
		// TODO Auto-generated method stub		

	}

	public void setEnabled(boolean valor) {
		this.horarioActividadPlanificada.setEnabled(valor);
	}
	
	public void onInicializar() {
		// TODO Auto-generated method stub
		this.removeAll();
		this.setEnabled(true);
		this.horarioActividadPlanificada.inicializar();
		this.add(this.horarioActividadPlanificada);
	}

	public void onModificar(Object arg0) {
		this.horarioActividadPlanificada.setHorario(actividadPlanificada.getHorarioActividadPlanificadas());
	}

	public void onObjetoEntidad(Object arg0) {
		// TODO Auto-generated method stub
		this.actividadPlanificada= (ActividadPlanificada) arg0;		
	}

	public boolean onValidarDatos(Object arg0, TipoFuncion arg1, String arg2) {
		// TODO Auto-generated method stub
		return true;
	}

	public void onListaParametros(List listaParametros) {
		// TODO Auto-generated method stub
		
	}


	// Getter y Setter
	public IServicioAdministracionActividadPlanificada getServicioAdministracionActividadPlanificada() {
		return servicioAdministracionActividadPlanificada;
	}

	public void setServicioAdministracionActividadPlanificada(
			IServicioAdministracionActividadPlanificada servicioAdministracionActividadPlanificada) {
		this.servicioAdministracionActividadPlanificada = servicioAdministracionActividadPlanificada;
	}

	public ComponenteHorario getHorarioActividadPlanificada() {
		return horarioActividadPlanificada;
	}

	public void setHorarioActividadPlanificada(
			ComponenteHorario horarioActividadPlanificada) {
		this.horarioActividadPlanificada = horarioActividadPlanificada;
	}

}